package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.EmployeeBasicInfo;
import com.ruoyi.system.domain.GroupCompany;

/**
 * 员工基本信息Mapper接口
 * 
 * @author ruoyi
 * @date 2025-05-22
 */
public interface EmployeeBasicInfoMapper 
{
    /**
     * 查询员工基本信息
     * 
     * @param employeeId 员工基本信息主键
     * @return 员工基本信息
     */
    public EmployeeBasicInfo selectEmployeeBasicInfoByEmployeeId(String employeeId);

    /**
     * 查询员工基本信息列表
     * 
     * @param employeeBasicInfo 员工基本信息
     * @return 员工基本信息集合
     */
    public List<EmployeeBasicInfo> selectEmployeeBasicInfoList(EmployeeBasicInfo employeeBasicInfo);

    /**
     * 新增员工基本信息
     * 
     * @param employeeBasicInfo 员工基本信息
     * @return 结果
     */
    public int insertEmployeeBasicInfo(EmployeeBasicInfo employeeBasicInfo);

    /**
     * 修改员工基本信息
     * 
     * @param employeeBasicInfo 员工基本信息
     * @return 结果
     */
    public int updateEmployeeBasicInfo(EmployeeBasicInfo employeeBasicInfo);

    /**
     * 删除员工基本信息
     * 
     * @param employeeId 员工基本信息主键
     * @return 结果
     */
    public int deleteEmployeeBasicInfoByEmployeeId(String employeeId);

    /**
     * 批量删除员工基本信息
     * 
     * @param employeeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmployeeBasicInfoByEmployeeIds(String[] employeeIds);

    /**
     * 批量删除集团及子公司信息
     * 
     * @param employeeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGroupCompanyByParentIds(String[] employeeIds);
    
    /**
     * 批量新增集团及子公司信息
     * 
     * @param groupCompanyList 集团及子公司信息列表
     * @return 结果
     */
    public int batchGroupCompany(List<GroupCompany> groupCompanyList);
    

    /**
     * 通过员工基本信息主键删除集团及子公司信息信息
     * 
     * @param employeeId 员工基本信息ID
     * @return 结果
     */
    public int deleteGroupCompanyByParentId(String employeeId);
}
